package com.cskaoyan.javase.homework.day06;

/**
 * 定义一个Student类：
 * 成员变量：String name，int stuId，String gender，int age，double score（表示学生成绩）
 * 构造器：无参构造器，全参构造器等，自由发挥。
 * 成员方法：print()，打印对象所有属性的取值。
 * 类定义完毕后，创建五个Student对象存入Student对象数组中，完成以下两个操作：
 * 1. 遍历输出每个学生的属性信息（遍历对象调用print()方法）
 * 2. 求成绩平均值。
 *
 * @since 11:56
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class StudentArrDemo {
    public static void main(String[] args) {
        // 初始化一个长度为5的学生对象数组
        Student[] studs = new Student[5];
        // 创建5个学生对象，然后给数组赋值
        Student s1 = new Student(1, "张三", "女", 18, 90);
        Student s2 = new Student(2, "李四", "男", 27, 55);
        Student s3 = new Student(3, "王二", "男", 48, 48);
        Student s4 = new Student(4, "麻子", "女", 30, 60);
        Student s5 = new Student(5, "小七", "女", 18, 86);
        studs[0] = s1;
        studs[1] = s2;
        studs[2] = s3;
        studs[3] = s4;
        studs[4] = s5;
        // 打印所有学生信息
        printStuByArr(studs);

        // 求平均分
        System.out.println("5位同学的Java考试平均分是:" + getAverageScoreByArr(studs));
    }

    // 遍历并输出学生信息
    public static void printStuByArr(Student[] arr) {
        for (Student s : arr) {
            s.print();
        }
    }

    // 遍历并求数组中所有学生的平均分
    public static double getAverageScoreByArr(Student[] arr) {
        // 遍历求总分
        double sum = 0;
        for (Student s : arr) {
            sum += s.score;
        }
        return (sum / arr.length);
    }
}

class Student {
    int id;
    String name;
    String gender;
    int age;
    double score;

    public Student() {
    }

    public Student(int id, String name, String gender, int age) {
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.age = age;
    }

    public Student(int id, String name, String gender, int age, double score) {
        this(id, name, gender, age);
        this.score = score;
    }

    public void print() {
        System.out.println("该学生姓名为:" + this.name + "，学号为" + id + "，性别为" + gender + "，年龄为" + age + "，Java成绩为" + score);
    }
}
